package com.abstractclass;

/*
* 测试抽象类
* */

public abstract class Animal {
    //抽象类中可以包含抽象方法，也可以包含正常方法和一般属性
    int age;

    public abstract void rest();
    public abstract void run();

    public void shout(){
        System.out.println("Animal.shout");
        //构造方法不能用来new实例，所以只能通过super等方法被子类调用。
        //进而有抽象类只能用来被继承
        // Animal A = new Animal();
    }
}

class Dog extends Animal{
    //抽象方法必须被子类实现，否则会报错
    @Override
    public void rest() {
        System.out.println("狗狗美美睡觉(∪.∪ )...zzz");
    }

    @Override
    public void run() {
        System.out.println("修狗快跑！！！冲呀！");
    }
}

